package com.smedi.ismedi.inmail.api.dto.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 通知公告管理反参
 *
 * @author jiangqinxuan
 * @date 2021/07/23
 */
@Data
@ApiModel(value = "通知公告管理反参")
public class AnnouncementManagementResponse implements Serializable {
    @ApiModelProperty(value = "通知公告Id")
    private Long id;

    @ApiModelProperty(value = "标题")
    private String title;

    @ApiModelProperty(value = "简介")
    private String content;

    @ApiModelProperty(value = "发布人id")
    private Long publishUserId;

    @ApiModelProperty(value = "发布人名称")
    private String publishUserName;

    @ApiModelProperty(value = "发布人单位名称")
    private String hrOrganizationName;

    @ApiModelProperty(value = "发布时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdDate;

    @ApiModelProperty(value = "已读主体院数量")
    private int organizationReadCount;

    @ApiModelProperty(value = "已读主体院名称列表")
    private List<String> organizationNameReadList;

    @ApiModelProperty(value = "所属主体院总数")
    private int organizationTotalCount;

    @ApiModelProperty(value = "所属主体院名称总列表")
    private List<String> organizationNameTotalList;

    @ApiModelProperty(value = "已读项目数量")
    private int projectReadCount;

    @ApiModelProperty(value = "已读项目列表")
    private List<String> projectNameReadList;

    @ApiModelProperty(value = "所属项目总数")
    private int projectTotalCount;

    @ApiModelProperty(value = "所属项目名称总列表")
    private List<String> projectNameTotalList;

    @ApiModelProperty(value = "附件key")
    private List<String> attachmentKeyList;

    @ApiModelProperty(value = "附件名称")
    private List<String> attachmentNameList;

    @ApiModelProperty(value = "附件后缀名")
    private List<String> attachmentExtensionList;

    @ApiModelProperty(value = "通知公告是否失效")
    private Boolean available;
}